package map;

import java.util.*;

/**
 * map的遍历
 */
public class MaPDemo2 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("数学", 113);
        map.put("英语", 115);
        map.put("语文", 116);
        map.put("化学", 98);
        map.put("物理", 95);
        map.put("体育", 100);
    /*
        Set keySet()
        将当前Map中所有的key以一个Set集合形式返回。
    */
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println("key:" + key);
        }
        /*
            Set entrySet()
            返回值Set集合，集合中每一个元素是一个Entry实例
            Map.Entry的每一个实例表示Map中的一组键值对。
            有两个常用方法：
            K getKey()  获取这组键值对的key
            V getValue()  获取这组键值对的value
         */
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> e : entrySet) {
            String key = e.getKey();
            Integer value = e.getValue();
            System.out.println(key + "," + value);
        }

        Collection<Integer> values = map.values();
        for (Integer  value :values){
            System.out.println("value:"+value);
        }

        Collection<String> c = new ArrayList<>();
            c.add("one");
            c.add("two");
            c.add("three");
            c.add("four");
            c.add("five");
            for(String e :c){
                System.out.println(e);
        }
            c.forEach(
                    e -> System.out.println(e)
            );

            map.forEach((k,v)-> System.out.println(k+":"+v));
    }
}
